Turbo decoder stopping criterion improvement

ABSTRACT

A stopping criterion improvement for a turbo decoder that does not require division by a variable quantity. The stopping criterion improved upon generates a signal-to-noise ratio based on the mean and variance of soft-output estimates. The decoding process is aborted based on a comparison of the generated signal-to-noise ratio to a predetermined threshold.

This application claims priority under 35 U.S.C. §119(e)(1) ofprovisional application Ser. No. 60/179,255, filed Jan. 31, 2000, theentirety of which is incorporated herein by referece.

BACKGROUND AND SUMMARY OF THE INVENTION

The present application relates to error control systems in datatransmission, especially to iterative decoding using parallelconcatenated encoders, such as turbo decoders.

Background: Signals and Noisy Channels

No communications channel is perfect. In the real world, everycommunications channel includes some “noise” (unpredictable non-signalinputs). The amount of noise is usually quantified by thesignal-to-noise ratio, or “SNR”, which is stated in decibels. (Forexample, if the signal power is one hundred times the noise power, theSNR would be about 20 dB.) Higher SNRs are more desirable, but the SNR(at a given transmission rate) is set by the physics of the channel, aswell as by the design of the transmitter and receiver. Even thoughdigital signals are generally less susceptible to degradation thananalog signals, many channels include enough noise to induce some errorsin a digital signal. In many applications a desired data rate can easilybe achieved at reasonable cost, but the worst-case level of bit errorswith such a configuration is excessive. In such cases coding techniquescan be used to reduce the error rate (at the cost of a slightly reducedgross data rate).

Similar techniques can also be used with data storage architectures. Inthis case, the “channel” is the storage medium and the interfaces to it.For example, in a hard disk drive the write head is an analog driverstage which may not be perfectly aligned to the desired radial positionon the disk. Data can be degraded, during writing, storage, or reading,by factors such as mistracking, overtemperature, particulatecontamination, or mechanical failure.

Background: Error-Control Coding

Coded digital communication systems use error control codes to improvedata reliability at a given signal-to-noise ratio (SNR). For example, anextremely simple form (used in data storage applications) is to generateand transmit a parity bit with every eight bits of data; by checkingparity on each block of nine bits, single-bit errors can be detected.(By adding three error-correction bits to each block, single-bit errorscan be detected and corrected.) In general, error control codingincludes a large variety of techniques for generating extra bits toaccompany a data stream, allowing errors in the data stream to bedetected and possibly corrected.

A famous existence proof (Shannon's noisy channel coding theorem) statesthat error rates can be made as low as desired by using optimal errorcontrol codes. This theorem did not itself tell how to derive theoptimal error control coding, and for decades no coding schemes wereable to come close to the theoretical limits defined by this theorem.However, a major breakthrough was achieved in 1993, when turbo codeswere introduced.

Background: “Turbo” Coding

The encoder side of a turbo coding architecture typically uses twoencoders, one operating on the raw data stream and one on a shuffledcopy of the base data stream, to generate two parity bits for each bitof the raw data stream. The encoder output thus contains three times asmany bits as the incoming data stream. This “parallel concatenatedencoder” (or “PCE”) configuration is described in detail below.

The most surprising part of turbo coding was its decoding architecture.The decoder side invokes a process which (if the channel were noiseless)would merely reverse the transformation performed on the encoder side,to reproduce the original data. However, the decoder side is configuredto operate on soft estimates of the information bits and refines theestimates through an iterative reestimation process. The decoder doesnot have to reach a decision on its first pass, but is generally allowedto iteratively improve the estimates of the information bits untilconvergence is achieved. (A more detailed description of this isprovided below.)

One drawback to the turbo decoder is that some received codewordsrequire many iterations to converge. The ability to improve estimates byiteration is a great strength, since it means that the decodingperformance can be nearly optimal; but every iteration requiresadditional time, computing resources, and/or battery energy. Thus inpractice it is desirable to find a way to stop turbo decoding as soon asconvergence is achieved. Worst-case channel conditions may require manymore iterations than do best-case conditions, and it is desirable tofind some way to adjust the number of iterations to no more thanrequired.

Background: Stopping Criteria for Turbo Decoders

Originally, turbo decoders would execute a specific number of iterationsregardless of the number of errors inserted by the channel. This wasinefficient, since fewer iterations are needed when there are fewererrors in the incoming signal. Efforts have therefore been made todevelop adaptive stopping criteria, which would provide an indicator ofwhen the turbo decoding iterations can be stopped.

U.S. Pat. No. 5,761,248 describes adaptive stopping based on crossentropy, or convergence of the output bits: when the decoder's digitaloutput bit estimates (for some block of data) stop changing, thedecoding process for that block is halted. However, this stoppingcriterion requires at least two iterations of the decoding process (inorder to generate enough outputs to compare to one another). This can bea waste of processing effort in systems where the channel introduces fewerrors, or where there is a large amount of data to be decoded. Otherstopping criteria, based on the cross entropy criterion, abort decodingbased on the ratio of sign changes in the extrinsics to the number ofextrinsics.

Another attempt at adaptive stopping was described in Robertson,“Illuminating the Structure of Code and Decoder of Parallel ConcatenatedRecursive Systematic (Turbo) Codes,” 1994 GLOBECOM Proceedings 1298,which suggests that the VARIANCE of the estimates can be used for astopping criterion.

Turbo Decoding with Improved Adaptive Stopping

The present application teaches an improvement to a stopping criterionpresented in commonly-owned U.S. provisional application No. 60/179,055,filled Jan. 31, 2000, which has the same effective filing date as thepresent application, and which also has overlapping inventorship withthe present application, and which is hereby incorporated by referencefor all purposes.

That application teaches an innovative method of aborting the decodingiteration process. Instead of a comparison between successive outputs ofthe MAP decoders, an absolute indication of the decoded signal qualityis compared with a threshold signal quality. The decoders generate softoutputs, or estimates of the original transmitted data symbols. Witheach decode, these extrinsic values diverge (or their absolute valueincreases), which indicates greater certainty of the value of thetransmitted bit. The values of the extrinsics are used to compute anestimate of the overall signal quality. The mean and variance of theextrinsic distribution are used to compute the estimate. When the signalquality reaches the desired performance threshold, iterations areaborted.

Implementation of the comparison of the decoded signal quality to thethreshold requires 3 divisions, 1 multiplication, 1 subtraction, and 1comparison. All these functions are easily built in a hardware solutionexcept the division function. Typically, division functions A/B areimplemented as A×1/B, with 1/B implemented as a lookup table. Thissolution only works if the range of numbers for B is relatively small.Unfortunately, the previous solution for comparing the SNR requireddivision by N (the number of extrinsics), which can be very large, oftenranging from 320 to 5120. This division also has numerators that canrange from 10² to 10⁶. The range for the required divisions is thereforemany orders of magnitude.

The present application teaches a stopping criterion implementation thatdoes not require division by a variable. By manipulating the comparisonequation, the previously required division functions are replaced bymultiplications. This innovation greatly simplifies hardwareimplementation and improves processing speed.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosed inventions will be described with reference to theaccompanying drawings, which show important sample embodiments of theinvention and which are incorporated in the specification hereof byreference, wherein:

FIG. 1 shows a block diagram for parallel encoders.

FIG. 2 shows a block diagram for a recursive systematic encoder.

FIG. 3 shows a block diagram of a turbo decoder.

FIG. 4 shows a stopping criterion implementation using division by avariable quantity N.

FIGS. 5 a and 5 b show graphs of SNR calculated from soft-decisionoutput values as MAP decodes are executed.

FIG. 6 shows a stopping criterion implementation without division by N.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The numerous innovative teachings of the present application will bedescribed with particular reference to the presently preferredembodiment. However, it should be understood that this class ofembodiments provides only a few examples of the many advantageous usesof the innovative teachings herein. In general, statements made in thespecification of the present application do not necessarily delimit anyof the various claimed inventions. Moreover, some statements may applyto some inventive features but not to others.

Additional Background

Coded digital communication systems use error control codes to improvedata reliability. Both the physical propagation medium (the channel) andthe hardware used to receive a signal introduce error in the form ofnoise or signal degradation.

Decoding makes use of redundant bits added to a data stream to detecterrors and estimate the most probable value for data bits given theother bits received. The effectiveness of error control codes isexpressed in terms of coding gain, which is the difference between theE_(b)/N_(o) needed to achieve a given bit error rate (BER) in a codedsystem and the E_(b)/N_(o) required to achieve the same BER in anuncoded system.

Though Shannon's noisy channel coding theorem states that arbitrarilylow BERs are possible using error control codes, no coding schemes wereable to achieve gain near the Shannon limit until 1993 when turbo codeswere introduced. Turbo coding provides error control performance towithin a few tenths of a decibel of the Shannon limit.

The use of parallel concatenated encoders and iterative decodersdistinguishes turbo codes from other coding systems. A PCE consists oftwo or more recursive systematic encoders (either block or convolutionalencoders). Encoders add parity bits to the original message in order todetect the presence of errors in the message. (In a rate ½ convolutionalencoder, for instance, two data bits are output for every input databit.) In the case of two convolutional encoders (a typical case forturbo code schemes) an original message block is encoded using the firstencoder, generating a first codeword. The original message is theninterleaved (i.e., the input data symbols are reproduced in a differenttemporal order) and the result is encoded by the second encoder,producing a second codeword. The original message and both codewords arethen multiplexed and transmitted to the receiver. The component encodersare typically encoders for block codes or convolutional codes. Thesymbols are permuted either on a block basis (a block interleaver) or ona sliding window basis (a convolutional interleaver).

Turbo decoders work by passing soft decoding information between twodecoding algorithms. Each decoder concentrates on one side of theencoding process, and through successive computations the two decodersarrive at a consensus on the detection of the transmitted data. Onedecoder executes and generates N new extrinsics (a posterioriprobabilities for the value of a given information symbol, where N isthe number of data symbols), which are then applied to the otherdecoder. This second decoder executes and generates N new extrinsics,which are passed back to the first decoder. This completes one iterationof the decoding process.

FIG. 1 shows a typical encoder setup. The original data stream, x, isencoded by two recursive systematic convolutional encoders 100, 102. (Anencoder is systematic if it sends the uncoded data as part of the codedmessage, as shown in the rate-½ recursive systematic encoder diagram ofFIG. 2.)

In the encoding process, x is encoded by the top encoder 100, and x andp₁ (the first codeword) are output. The data x is also interleaved by aninterleaver 104 and input to the bottom encoder 102, which generatesoutputs x* and the second codeword, p₂. The original data x, p₁, and p₂are combined by combiner circuitry 106 and sent through the channel tothe receiver. (Note that the interleaved x* is not sent, since it isredundant information.)

FIG. 2 shows a recursive systematic convolutional encoder 200. Thebinary data stream x is fed into a shift register circuit 202 consistingof a series of memory elements. With each successive input, the memoryelements are added according to a fixed pattern, creating a pair ofoutputs. One output is the unchanged data x, the other is the coded datap. These outputs can be multiplexed to create a single coded datastream.

Decoders for PCEs would be expensive and computationally inefficientwithout iterative decoding. Iterative decoding, or turbo decoding, is arelatively low complexity decoding method that exploits the componentsubstructure of the PCE. An iterative decoder has asoft-input/soft-output (SISO) component decoder for each componentencoder of the PCE. The decoders generate separate a posterioriprobabilities for a given information symbol. The decoders take turnsdecoding the received data, operating on each other's incompletelydecoded output. With each iteration, the estimation of the value of aninformation symbol improves in accuracy.

FIG. 3 shows a block diagram of a turbo decoder 300. The originalmessage block x and code words p₁ and p₂ are scaled by 2/σ² (a measureof the channel noise variance) and stored in three separate memories ofsize N as Λ(x), Λ(p₁), and Λ(p₂) respectively. Interleavers 302, 304 forthe data are also of size N. The extrinsic memories have outputs W₁ andW₂ (the a posteriori probability data, or estimates of the probabilitydistribution of a code symbol that are updated with each iteration)which are set to the initial conditions before the first decodingiteration. The scaled inputs Λ(x) and Λ(p₁) and the deinterleaved W₂ areapplied to the upper MAP decoder 308, as shown in the diagram. This MAPdecoder 308 executes and generates N new extrinsics W₁ which are storedin the extrinsic memory within the interleaver I 304.

Interleaved Λ(x), Λ(p₂), and interleaved W₁ are applied to the lower MAPdecoder 310. The lower MAP decoder 310 executes and generates N newextrinsics W₂ which are stored in the extrinsic memory of thedeinterleaver I⁻¹ 306. This completes the first decoding iteration. Ateach iteration, the upper MAP decoder 308 operates on Λ(x), Λ(p₁), andthe deinterleaved W₂ (which is updated at each iteration). The lower MAPdecoder 310 operates on interleaved Λ(x), Λ(p₂), and the interleaved W₁(which is also updated at each iteration).

Iterations are executed until a specified number have been completed oruntil the iterations are aborted. When decoding is complete, Λ(x), W₁,and deinterleaved W₂ are summed. The result is sliced, meaning the samecomponent of each vector Λ(x), W₁, and deinterleaved W₂ are used todetermine that component of the output vector x, which is the decodedmessage. These decoded bits are then output.

The number of iterations performed varies, typically ranging from threeto twenty. Depending on the noise pattern of a given received codeword,the decoder might reach its optimum solution after only one or twoiterations. The remaining iterations would not improve performance andare a waste of processing power and time. If the noise pattern of areceived codeword is severe, the decoder may require many iterations toreach an optimum solution.

Soft-Decisions

In digital communication systems, data is sent in the form of symbols(usually binary) that take on one value of a finite set of possiblevalues. These symbols are modulated onto a carrier signal that istransmitted through the channel to a receiver. In the receiver,detection circuitry examines the received signal and determines whatsymbols were most likely transmitted. For example, in a binaryhard-decision system, the receiver determines if a zero or a one wassent, and outputs a zero or one accordingly. No information as to thequality of the symbol determination is included in a hard-decisionoutput.

Soft-decision decoding takes advantage of additional informationgenerated by the receiver decision circuitry. Rather than assign a zeroor a one to each received binary signal, soft-decision receivers use anexpanded set of symbols to describe the value of a given transmittedpiece of data. For example, in one implementation, each binary datasymbol transmitted in the original data stream is expressed as aneight-bit value. Different regions are established that indicate thestrength of the decision, with intermediate values given to decisionsthat are less reliable.

In the preferred embodiment, the output of the encoder is binary (zerosand ones). A modulator maps the ones to a positive one value and mapsthe zeros to a negative one value. When the receiver determines aparticular received symbol, it expresses it as an eight-bit value, the“soft” decision. The closer a soft-decision gets to its extreme value,the more reliable the estimation of the original data bit. Theseestimates are made after each MAP decode, which is a substep of a fulliteration. In the preferred embodiment, one iteration consists of twoMAP decodes. (Note that the number of MAP decoders required depends onthe number of encoders used.)

As a turbo decoder goes through its iterations, the certainty of thevalue of a given information symbol generally increases. Thus, with eachiteration substep (i.e., each MAP decode), the value of a “zero” in theoriginal data stream will become more and more negative (since the zerosare modulated into negative numbers) and the value of a “one” in theoriginal data stream will become more and more positive (because theones were modulated as positive numbers).

Stopping Criteria for Turbo Decoders

A stopping criterion has been developed for turbo decoding that measuresthe SNR of the extrinsics and compares the result to a threshold. If thethreshold is reached, no further iterations are executed. This stoppingcriterion is disclosed in the commonly owned U.S. provisionalapplication No. 60/179,055, referenced above.

All the functions of the stopping criterion can be easily implemented inhardware except for division, which cannot be implemented in anefficient manner. Typically, division functions like A/B are implementedas A×1/B. 1/B is implemented as a lookup table. This solution workssatisfactorily as long as the range of numbers for B is small. In aprevious method of turbo decoding, the stopping criterion requireddivision by a variable quantity N. N (the number of extrinsics generatedby the component decoders) can be large, ranging from 320 to 5120.Often, division by N must be performed from 10² to 10⁶ times. It istherefore inefficient to implement this one division.

Turbo Decoder Stopping Criterion Improvement

The present application discloses an innovative improvement to the turbodecoding stopping criterion. The improved stopping criterion requires nodivision functions. By manipulating the algorithm, division by messagedependent quantity N is eliminated and replaced with multiplication by aconstant. This greatly simplifies the execution of the algorithm andmakes hardware implementation much more efficient.

FIG. 4 shows a block diagram of a stopping criterion implementation. Theblock diagram is broken into two regions. The top half generates the twomoments M₁ and M₂, which are needed to compute the SNR for theextrinsics. M₁ is the sum of the N extrinsics at any given point in theiterative decoding process, and M₂ is the sum of the squares of the Nextrinsics at a given point.

Their equations areM ₁ =Σ|W _(i)|andM ₂ =Σ|W _(i)|²where i is summed from 1 to N. The top section is executed once for eachof the N extrinsics, generating a single M₁ and a single M₂. Eachcomponent of the extrinsic W_(i) is input and added to the sum, which isstored in the register.

M₁ and M₂ serve as input for the bottom half of the stopping criterion.These quantities are used to compute a signal-to-noise ratio estimatefrom the extrinsics. The extrinsics W_(i) are assumed to be distributedas a bimodal Gaussian probability distribution function, with one meanat +m and another mean at −m. Each mode has the same conditionalvariance v². The absolute value of the probability distribution functionis taken, making a single mean at +m. An increase in this mean indicatesgreater certainty in the value of the decoded bits. An increase in thevariance would indicate less certainty in the decoded values.

Alternatively, the divergence of the decoded bits can be used. If theabsolute value is not taken of the probability distribution function,the two means (the positive and negative modes) will diverge as decodingprogresses.

An estimate of signal quality based on the mean and variance of theextrinsics is computed by dividing the m² (the signal) by v² (thenoise). The mean m is estimated by $m = \frac{\sum{W_{i}}}{N}$and the optimal estimate for the variance is$v^{2} = {\frac{\sum{W_{i}}^{2}}{N} - \left( \frac{\sum{W_{i}}}{N} \right)^{2}}$

The bottom half of the block diagram in FIG. 4 generates the signalquality estimate, which is then compared with the threshold K. If thequality estimate is greater than the threshold, then the Exceed signalis active. The Exceed signal will inform the turbo decoder to stopexecuting its remaining iterations because an optimum solution has beenreached. The bottom half executes only once per MAP decode.

FIGS. 5 a and 5 b show a graphical representation of the change inextrinsic values as MAP decodes are executed. The “x” symbols representSNR values calculated for the extrinsics after each MAP decode. In FIG.5 a, 5 MAP decodes are executed before the SNR of the extrinsics exceedsthe threshold. After the 5^(th) decode, no more iterations are executed.Note that this represents only 2.5 full turbo decode iterations, sincetwo MAP decodes complete one iteration in the preferred embodiment.

FIG. 5 b shows an example decode for a system with fewer errors thanshown in FIG. 5 a. When fewer errors are inserted in the data stream,fewer MAP decodes are necessary to reach an acceptable SNR. Thus, asshown in FIG. 5 b, only two MAP decodes produces a SNR above thethreshold. Decoding would stop at this point.

The following algebraic expression for the bottom half of the diagramshows the comparison of the SNR (computed from the extrinsics) with K,the threshold SNR.$\frac{\left( \frac{\sum{W_{i}}}{N} \right)^{2}}{\frac{\sum{W_{i}}^{2}}{N} - \left( \frac{\sum{W_{i}}}{N} \right)^{2}} > K$

The top half of the block diagram requires 2N additions, Nmultiplications, and N absolute value functions. The bottom halfrequires 3 divisions, 1 multiplication, 1 subtraction, and 1 comparison.

FIG. 6 shows the innovative stopping criterion in a block diagram. Thecomparison equation for the bottom half of the algorithm is rewritten bymultiplying the denominator and numerator by N². The equation can berewritten as follows.$\frac{\left( {\sum{W_{i}}} \right)^{2}}{{N{\sum{W_{i}}^{2}}} - \left( {\sum{W_{i}}} \right)^{2}} > {K{{\left( {1 + \frac{1}{K}} \right) \times \left( {\sum{W_{i}}} \right)^{2}} > {N{\sum{W_{i}}^{2}}}}}$

This equation is the basis for the block diagram shown in FIG. 6. Thebottom half division functions are replaced by two multiplications. Onemultiplier can be used and multiplexed three times for an efficientimplementation. The K threshold has now been replaced with a 1+1/Kthreshold. Since K is a constant, 1+1/K is also a constant which can beprecomputed by the user or generated from a simple lookup table prior tothe start of a turbo decode.

The top half of the algorithm is the same as the stopping criterion inFIG. 4. The bottom half of the diagram shows that N is no longer adenominator, which greatly simplifies hardware implementation. M₁ issquared and multiplied by 1+1/K. This value is compared to the productof M₂ and N.

The value of the threshold is still a constant, and when the computedquality estimate of the decoded signal exceeds the threshold, thedecoding iterations are stopped. This allows the decoding to continuewhen there are large numbers of errors introduced into the signal by thechannel while it prevents the decoder from executing useless iterationswhen few errors are introduced.

Definitions

Following are short definitions of the usual meanings of some of thetechnical terms which are used in the present application. (However,those of ordinary skill will recognize whether the context requires adifferent meaning.) Additional definitions can be found in the standardtechnical dictionaries and journals.

-   Eb/No: Ratio of energy per modulating bit to the noise spectral    density.-   BER: Bit error rate.-   PCE: Parallel Concatenated Encoder.-   SI/SO: Soft-input soft-output. “Soft” input or output refers to    using greater bit size (for instance, 8-bits) to describe a given    data symbol.-   MAP decoder: Maximum A-Posteriori. MAP decoders use a detection    criterion that leads to the selection of x that maximizes the    probability p(x/r) of a symbol x given some received information r.-   Extrinsic: Outputs of decoders that estimate the value of a decoded    bit. Extrinsics are usually soft estimates.    Modifications and Variations

As will be recognized by those skilled in the art, the innovativeconcepts described in the present application can be modified and variedover a tremendous range of applications, and accordingly the scope ofpatented subject matter is not limited by any of the specific exemplaryteachings given, but is only defined by the issued claims.

In particular, the disclosed inventions are not necessarily limited to“turbo decoding” as implemented in 1999. This is a very active area oftechnological development, and many improvements and modifications areundoubtedly in existence or soon to come. Even if future improveddecoding architectures with iterative processing of soft estimates arereferred to by names other than “turbo decoding”, the disclosedinventions may still be applicable.

For instance, multi-bit symbols could be used in lieu of binary symbolsas the original data stream. Alternatively, future versions of iterativedecoding might apply to analog signals rather than digital signals. Theclaimed inventions can also be applied to decoder architectures thatimplement these changes.

Other decoding methods, such as pipeline decoding, or turbo codes thatuse more encoders than described in the present application may also bewithin the contemplation of the present innovations.

Further details and descriptions of the present state of the art may befound in TURBO CODING, by Heegard and Wicker, and ERROR CONTROL SYSTEMS,by Wicker, which are hereby incorporated by reference.

1. A turbo decoding system, comprising: a decoder module, using anadaptive abort criterion to halt iteration; and executing said adaptiveabort criterion by manipulating an abort criterion equation by replacingdivision by a variable with multiplication by a variable therebysimplifying hardware implementation.
 2. The system of claim 1, whereinthe abort criterion is based on the mean and variance of partiallydecoded extrinsics.
 3. The system of claim 1, wherein the abortcriterion is based on a ratio of the mean and variance of partiallydecoded extrinsics.
 4. An iterative decoder system, comprising: adecoder module, for generating estimates of data symbols through aniterative decoding process; a comparator having a comparison algorithmfor comparing a derived quality attribute of the generated data symbolestimates to a predetermined threshold said; comparison algorithm beingexecuted by manipulating an abort criterion equation by replacingdivision by a variable with multiplication by a variable therebysimplifying hardware implementation; and means to abort said decodingbased on a comparison result.
 5. The system of claim 4, wherein thequality attribute is based on the mean and variance of the estimates ofdata symbols.
 6. The system of claim 4, wherein the quality attribute isbased on a ratio of the mean and variance of the estimates of datasymbols.
 7. The system of claim 4, wherein the quality attribute isgenerated without division by a variable.
 8. An abort criterion initerative decoding, comprising the steps of: generating estimates ofdata symbols; executing a comparison algorithm by manipulating an abortcriterion equation by replacing division by a variable withmultiplication by a variable thereby simplifying hardwareimplementation; comparing the quality attribute to a predeterminedthreshold; and aborting the turbo decoding based on a comparison result.9. The method of claim 8, wherein the quality attribute is based on themean and variance of the estimates of data symbols.
 10. The method ofclaim 8, wherein the step of comparing is implemented without divisionby a variable.
 11. An abort criterion in iterative decoding, comprisingthe steps of: (a.) generating estimates of data symbols after aniteration substep; (b.) measuring the mean of the estimates; (c.)measuring the variance of the estimates; (d.) generating a qualityattribute based on the mean and the variance; (e.) comparing the qualityattribute to a predetermined threshold; and (f.) aborting the turbodecoding based on a comparison result; wherein the steps (b), (c), (d),and (e) are implemented without division by a variable.
 12. The methodof claim 11, wherein the quality attribute is based on a ratio of themean and the variance of the estimates.
 13. An iterative decoder systemfor a recursive systematic encoder, comprising: a decoder module,wherein estimates of data symbols are generated through an iterativedecoding process; a comparison algorithm for comparing a qualityattribute of the generated data symbol estimates to a predeterminedthreshold; wherein the quality attribute is based on the mean and thevariance of the estimates; wherein decoding is aborted based on theresult of said comparison; and wherein the mean and variance for theestimates and the comparison algorithm are implemented without divisionby a variable.
 14. The system of claim 13, wherein the quality attributeis based on a ratio of the mean and variance of the estimates.